/*
 * @Author: rock
 * @Date: 2025-05-17 16:13:34
 * @LastEditors: rock 
 * @LastEditTime: 2025-05-17 18:04:45
 * @FilePath: /001ConnPool/include/_____Connection.h
 * @Description: Ctrl+Num1-> For Document; Ctrl+Num2-> For Function
 *
 *          实现数据库的增删改查
 *
 * Copyright (c) 2025 by rock, All Rights Reserved.
 */

#ifndef _____CONNECTION_H
#define _____CONNECTION_H

#include "_____public.h"

class Connection
{
public:
    //初始化数据库连接
    Connection();
    //释放数据库连接
    ~Connection();

    //连接数据库
    bool connect(
                    std::string ip,         //数据库ip
                    unsigned short port,    //数据库端口, 一般是3306
                    std::string user,       //数据库登录用户名
                    std::string password,   //数据库密码
                    std::string dbname      //数据库的名称  
    );

    //更新操作
    bool update(std::string sql_update);
    bool update_add(std::string sql_update_add);//增
    bool update_del(std::string sql_update_del);//删
    bool update_mod(std::string sql_update_mod);//改    
    bool update_query(std::string sql_query);//查


private:
    sql::mysql::MySQL_Driver* m_driver;//加载数据库驱动, 裸指针不要释放
    std::unique_ptr<sql::Connection> m_con; //表示和MySqlServer的一条连接
    std::string m_ip;         //数据库ip
    unsigned short m_port;    //数据库端口, 一般是3306
    std::string m_user;       //数据库登录用户名
    std::string m_password;   //数据库密码
    std::string m_dbname;     //数据库的名称  
    

};


#endif